Within manufacturing plants, deciding what products to produce (assuming the plant is capable of producing more than a single product), when to produce them, how much of each to produce and whether to accept new orders for different products are questions that continually confront the owners and operators thereof. Many times, these questions are complicated by the fact that different products have different associated costs and values. Further, such plants are often faced with requests to produce many more products than can reasonably be manufactured in a given time frame. Thus, the challenge is to decide how best to employ the available resources for the tasks presented. Stated differently, the question is how to select a "best" subset of the available jobs for completion (and, perhaps, in what order to execute them).
In some cases, aggregate planning techniques have been used to help answer such questions. Aggregate planning may be characterized as the development of a plan for plant operations for given time periods. The goal may be to develop a plan that minimizes cost while meeting the demands of the jobs to be processed. Although useful, many current aggregate planning solutions are computationally intensive. For example, although "brute force" techniques could be used to select from among a list of possible jobs, where the number of jobs is anything more than trivial, these techniques simply require too much processing time to be of much benefit. Further, "trial and error" solutions, although perhaps easier to implement, often require too long to develop and/or update. Thus, what is required is an aggregate planning solution that avoids such drawbacks.